خرید بک لینک
به نام خداسلام. یک سری توضیحات از مفاهیمی که یاد گرفتم رو میخوام اینجا یادداشت کنم. OpenGL چیست؟ عملا OpenGL تنها یک استاندارد برای API مربوط به کار های گرافیکی است (مثل ایجاد یک شی سه بعدی، ایجاد سایه و...) که باید توسط درایور کارت گرافیک پیاده سازی شود. درایور کارت گرافیک موظف است این API را پیاده سازی کند و هر دستور آن را به چند دستور مربوط به پردازنده ی گرافیکی بشکند و برای GPU ارسال کند. این نکته را در نظر داشته باشید که GPU واحد های پردازشی مخصوصی برای رندر های گرافیکی دارد به عنوان نمونه واحد Shader وظیفه ی سایه زدن را دارد. Vulkan چیست؟ ولکان دقیقا مشابه OpenGL است که قرار است جایگزین آن شود. با توجه به پیشرفت تر شدن پردازنده های گرافکی و تغییر نیاز های رندر ها ولکان قرار است جایگزین OpenGL شود. MESA3D چیست؟در لینوکس MESA یک پیاده سازی از OpenGL و Vulkan است و این دستورات را گرفته و به کمک DRM برای پردازنده ی گرافیکی ارسال میکند. (عملا نوعی درایور کارت گرافیک OpenSource است). DRM: هر درایور کارت گرافیکی موظف است DRM را پیاده سازی کند. درایور کارت گرافیک اینتل که DRM را پیاده سازی میکند i915 نام دارد برای دیدن درایور که دارد DRM را هندل میکند از دستور زیر استفاده کنید: cat /sys/class/drm/cardX/device/driver/module/drivers   کارت گرافیک دارای چند Plane میباشد که به هر Plane یک فریم بافر اتچ شده است CRTC که یک واحد در DRM است وظیفه ی ادغام این Plane ها را دارد. به عنوان نمونه به کمک این قابلیت میتوان کرسر ماوس را یک Plane در نظر گرفت و عملا کرسر موس به صورت سخت افزاری روی صفحه نمایش داده میشود و لازم نیست هربار با تغییر ماوس صفحه مجددا رندر شود. یا ممکن است وق

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 20 فروردين 1403 ساعت: 17:05

Once in the boot menu of grub, select the boot entry you want to boot with your Up/Down keys and press e to edit the entry.
Then navigate down to the line that starts with linux and append break or break=<run-time> to make the boot process stop in the initramfs.

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 20 فروردين 1403 ساعت: 17:05

به نام خدادر این پست قصد دارم توضیحاتی در مورد فرمت ELF خدمتتون ارائه کنم. این فرمت برای فایل های اجرایی و همچنین فایل های لینک پذیر مانند لایبراری های so استفاده میشود. این فرمت دارای هدر های متنوع و گوناگونی است. به کمک دستور readelf میتوان مشخصات یک فایل elf را بدست آورد.  در فایل elf دو نوع وجود دارد Segment و Secction به داده های موجود روی فایل section میگویند و به ساختاری که در حافظه ی ram ایجاد میشود segment گفته میشود. سکشن ها شامل موارد زیر است که میتوانند توسط برنامه نویس بیشتر هم شوند. .text .data .bss .symtab برای مشاهده ی کل شکسن هدر های برنامه از دستور readelf -S استفاده میشود. یکی از سکشن های مهم symbol table نام دارد که به صورت .symtab نمایش داده میشود. برای مشاهده ی تمام symbol ها از دستور readelf -s استفاده میشود. نام تمام متغیر های سراسری و توابع و فایل ها و سکشن ها توسط این دستور نمایش داده میشود (داخل این سکشن وجود دارد) همچنین نام فانکشن هایی که قرار است بعدا به برنامه لینک شوند با تگ UND به معنی تعریف نشده مشخص شده است. برای بررسی کد اسمبلی یک فایل اجرایی میتوان از دستور objdump -d استفاده کرد. اگر در کد اسمبلی به دستور call توجه کنید خواهید دید که آدرس توابعی که باید به آن ها پرش کنیم با صفر مشخص شده است (حتی توابع معمولی داخل فایل به شرطی که با gcc -c کامپایل شده باشند). سوال اینجاست که این آدرس ها چه زمانی و توسط چه کسی باید اصلاح شود؟پاسخ آن است که لینکر موقع لینک شدن (بعد از کامپایل) آدرس ها را جایگذاری میکند اما لینکر از کجا متوجه میشود که چه بخش هایی از کد باید با چه مقادیری تغییر کند؟ پاسخ اسن است که کامپایلر یک سکشن به نام Relocation Sect

برچسب: نویسنده: سارا زارعی‌پور تاريخ: دوشنبه 20 فروردين 1403 ساعت: 17:05

صفحه بندی